This invention relates to an on-line high speed printer for a data processing system, and in more particular to an improvement over my co-pending application Ser. No. 396,636, filed Sept. 12, 1973.
Printing systems of the type set forth in my above application and also in U.S. Pat. No. 3,289,576 and 3,760,366 generally include an on-the-fly printer mechanism such as a continuously moving band, drum or oscillating bar type member and a control unit which interconnects the printer mechanism to the I/O channel of a central processor unit. The central processor, which may be generally of the type disclosed in U.S. Pat. No. 3,400,371, is under control of an internally stored program which directs the operation of the I/O device, in this case the printer, by sending various commands to the printer control unit. The central processor also supplies the printer with the data to be printed thereby. Typically an entire line of data characters, for example 160 characters, will be transmitted in binary coded form to the printer and stored in a print line buffer memory. The print line buffer memory has as many storage locations as there are columns in a print line, and each binary coded character to be printed in a line is stored in the memory location of the print buffer memory corresponding to its respective columnar position in the print line. The printer also includes a code generator, preferably a code buffer memory such as disclosed in U.S. Pat. Nos. 3,282,205 or 3,349,695 which has as many storage locations as there are characters on the type member. Each location of the code buffer memory has stored therein a binary coded signal, representative of the corresponding character on the type member. During printing the binary coded signals stored in the print line buffer memory and in the code buffer memory are read out in synchronism with the movement of the type member and compared against one another. Specifically, as a character on the type member comes into a printing position the code for that character is read out of the code buffer memory and compared against the code for the character to be printed in that columnar position. When these codes match a print hammer is activated and the corresponding character is printed.
With a system of the foregoing type it frequently occurs that the central processor will utilize, for its data processing activities, certain binary coded characters which are not present on the type member. For example, the central processor may employ say 52 different character codes in the normal processing of data, but the printer may have only 48 print characters in its character set. This means that four of the 52 data characters utilized by the central processor are non-printable. A non-printable character is generally referred to in the art as a data check character and normally appears as a space in the print line. The use of spaces to represent data check characters under certain circumstances is a disadvantage to a programmer since it cannot be determined with reliability what data check character caused a particular space. Indeed, it cannot be determined with reliability which positions are true spaces and which are spaces caused by data check characters. To be more specific by way of example, let us suppose that the information being processed by the computer includes a reference to an aluminum oxide whose chemical notation is AlO. If the type member of the printer device has 26 upper case letters (capital letters), 10 numeric characters and 12 symbols such as parentheses signs, commas, periods, astericks, etc., then the type member would not be able to print a lower case l such as that required to print the chemical symbol for aluminum oxide. Accordingly, the lower case l under these circumstances becomes a non-printable character. The problem that arises is that the user of the computer would like the printer to print something for this small case l so that the user can recognize that the report is referring to aluminum oxide.
In accordance with the present invention, a system is provided whereby the binary code of any printable character may be selectively paired with the code of any one or group of non-printable characters. For instance, in the above example an upper case L could be paired with a lower case l or the numeral one (1) could be paired with a lower case l. Accordingly, whenever the computer attempts to print a lower case l (if it were paired with a capital L), the capital L would be printed and in the second instance given above if the lower case l were to be printed, (if it were paired with the numeral (1)), instead the number one (1) would be printed.